package model;

import basics.ConversaoDeBases;

public class TipoI extends Instrucao {

	private String rs; // Código do registrador rs
	private String rt; // Código do registrador rt
	private String imediato;
	private boolean tipoDesvio;

	protected String getRs() {
		return rs;
	}

	protected void setRs(String rs) {
		this.rs = rs;
	}

	protected String getRt() {
		return rt;
	}

	protected void setRt(String rt) {
		this.rt = rt;
	}

	protected String getImediato() {
		return imediato;
	}
	
	protected void setImediato(String imediato) {
		this.imediato = imediato;
	}

	protected boolean isTipoDesvio() {
		return tipoDesvio;
	}

	protected void setTipoDesvio(boolean tipoDesvio) {
		this.tipoDesvio = tipoDesvio;
	}
	
	protected String getRsInHex() {
		return ConversaoDeBases.binToHex(rs);
	}


	protected String getRtInHex() {
		return ConversaoDeBases.binToHex(rt);
	}


	protected String getImediatoInHex() {
		return ConversaoDeBases.binToHex(imediato);
	}


	@Override
	public String toString() {
		return this.getEnderecoInHex() + ":\top= " + super.getOpInHex() + " TipoI [rs="
				+ this.getRsInHex() + ", rt=" + this.getRtInHex() + ", imediato=" + this.getImediatoInHex() + "]";
	}
	
	protected String toStringBin() {
		return this.getEnderecoInBin() + ":\top= " + super.getOp() + " TipoI [rs="
				+ rs + ", rt=" + rt + ", imediato=" + imediato + "]";
	}
	

	@Override
	public String getInstrucao() {
		return super.getOp() + this.getRs() + this.getRt() + this.getImediato();
	}

}
